home *** CD-ROM | disk | FTP | other *** search
/ Your Choice 3 / Your Choice Software Collection 3.iso / prgmming / logoflow / logoflow.asm next >
Encoding:
Assembly Source File  |  1993-10-28  |  2.8 KB  |  157 lines

  1. ;NBLOGO.ASM
  2. ; By Drunken Butterfly of NeuroBashers
  3. ; 10/23/1993
  4. ;--------------------------------------------------------------------
  5.  
  6. .286
  7. IDEAL
  8. DOSSEG
  9. MODEL small
  10. STACK 30
  11. DATASEG
  12. ;--------------------------------------------------------------------
  13.  
  14. LABEL PAL BYTE
  15. INCLUDE 'PAL.INC'
  16. LABEL PICTURE BYTE
  17. INCLUDE 'pic2.inc'
  18.  
  19. ;--------------------------------------------------------------------
  20.  
  21. CODESEG
  22.  
  23. ASSUME ds:DGROUP,ss:Stack,es:NOTHING
  24.  
  25. ;--------------------------------------------------------------------
  26.  
  27. PROC    InitScreen              ; switch to 320x200x256c
  28.  
  29.     push ax cx dx es di
  30.  
  31.     mov     ax,0013h
  32.     int     10h             ; switch to 320x200x256c (non-tweaked)
  33.  
  34.     mov     ax,0a000h
  35.     mov     es,ax
  36.     xor     di,di
  37.     xor     ax,ax
  38.     mov     cx,08000h
  39.     rep     stosw           ; clear display memory
  40.  
  41.     pop     di es dx cx ax
  42.  
  43.     ret
  44. ENDP    InitScreen
  45.  
  46. ;--------------------------------------------------------------------
  47.  
  48. PROC    BlackPal
  49.     pusha
  50.     mov     dx,3c8h
  51.     mov     ax,0
  52.     cli
  53.     out     dx,al
  54.     inc     dx
  55.     mov     al,00h
  56.     mov     cx,768
  57. @@Looper:
  58.     out     dx,al
  59.     loop    @@Looper
  60.     popa
  61.     sti
  62.  
  63.     ret
  64. ENDP
  65.  
  66. ;--------------------------------------------------------------------
  67.  
  68. PROC    LoadPal
  69.     pusha
  70.     mov     dx,3c8h
  71.     mov     ax,0
  72.     cli
  73.     out     dx,al
  74.     inc     dx
  75.     mov     ax, seg pal
  76.     mov     es,ax
  77.     mov     si,offset pal
  78.     mov     cx,768
  79.     rep     outsb
  80.     popa
  81.     sti
  82.  
  83.     ret
  84. ENDP
  85.  
  86. ;--------------------------------------------------------------------
  87.  
  88. PROC    DisplayPic              ; displays 320x200x256c picture
  89.     pusha
  90.     mov     ax,seg picture
  91.     mov     si,offset picture
  92.     mov     es,ax
  93.     mov     di,0
  94.     mov     ax,0a000h
  95.     mov     es,ax
  96.     cld
  97.     mov     cx,4540
  98. @@First14:
  99.     movsb
  100.     loop    @@First14
  101.  
  102.  
  103.     mov     di,4540
  104.     mov     cx,186
  105. @@FlowLoop:
  106.     push    cx si di
  107. @@FlowLoop2:
  108.     push    si
  109.     mov     bx,0
  110. @@FlowLoop3:
  111.     movsb
  112.     inc     bx
  113.     cmp     bx,320
  114.     jne     @@FlowLoop3
  115.     pop     si
  116.     loop    @@FlowLoop2
  117.  
  118.     pop     di si cx
  119.     add     di,320
  120.     add     si,320
  121.     loop    @@FlowLoop
  122.     
  123.     popa
  124.     ret
  125.  
  126. ENDP    DisplayPic
  127.  
  128. ;--------------------------------------------------------------------
  129.  
  130. BEGIN:
  131.  
  132.     mov     ax,@data
  133.     mov     ds,ax
  134.  
  135.     call    InitScreen              ; Initialize 320x200x256c
  136.     call    LoadPal                 ; Loads Palette
  137.     call    DisplayPic              ; Display the picture
  138.     
  139.     mov     al,00h                  ; Get character from buffer
  140.     int     16h
  141.  
  142. @@CheckForKeys:                         ; Check for keypress
  143.     mov     ah,01h
  144.     int     16h
  145.     jz      @@CheckForKeys
  146.     xor     ah,ah
  147.     int     16h
  148. @@NoKeyWaiting:
  149.     mov     ax,0003h                ; Reset screen to text mode
  150.     int     10h
  151.  
  152.     mov     ah,04ch                 ; Finish
  153.     mov     al,[0]
  154.     int     21h
  155.  
  156. END     BEGIN
  157.